# 2.5 人脸检测 下载 opencv-4.5.1-vc14_vc15.exe ，运行并解压 提取 sources\data\haarcascades目录下的haarcascade_frontalface_default.xml 文件放到源码目录下
# 2.6 多个人脸的检测 把图片换成face.jpg、face2.jpg等即可 识别不同图片的时候可能需要调整一下detectMultiScale()的参数

import cv2 as cv


def face_detect_demo(img):
    # 先将图片转灰度
    gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
    # 加载特征文件
    face_detector = cv.CascadeClassifier("haarcascade_frontalface_default.xml")
    # 在图像上进行人脸检测 # 返回检测出来的人脸 外部列表描述每一个人脸
    # 前两个数值是左上角的坐标 后两个数值是宽和高
    faces = face_detector.detectMultiScale(gray)
    for face in faces:
        x, y, w, h = face  # 前两个数值是左上角的坐标 后两个数值是宽和高
        color = (0, 255, 0)
        cv.rectangle(img, face, color, thickness=2)
    cv.imshow("result", img)


img = cv.imread("test.jpg")
face_detect_demo(img)
cv.waitKey(0)
cv.destroyAllWindows()
